#ifndef EQUALMATCHER_H_
#define EQUALMATCHER_H_

#ifndef NULL
#define NULL 0
#endif

#include "Matcher.h"

template<class I> class EqualMatcher: public Matcher<I> {
public:

	EqualMatcher() {
	}

	virtual ~EqualMatcher() {
	}

	virtual bool matches(I dataToCompare) {
		return ((this->current != NULL) && (dataToCompare != NULL)
				&& (this->current->equals(dataToCompare)));
	}

	virtual EqualMatcher* setCurrent(I current) {
		this->current = current;
		return this;
	}

private:
	I current;
};

#endif /* EQUALMATCHER_H_ */
